﻿///////////////////////////////////////////////////////////////////////////////
// File:        EchoServerSocket.cc
// Author:      671643387@qq.com
// Date:        2016年1月14日 下午2:12:12
// Description:
///////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include "EchoServerStatics.h"
#include "EchoServerSocket.h"

extern EchoServerStatics _gstatics;

EchoServerSocket::EchoServerSocket(void)
{

}

EchoServerSocket::~EchoServerSocket(void)
{

}

void EchoServerSocket::OnOpen(void)
{
    printf("[%d] new connection from %s:%d\n", GetId(), GetPeerAddr().c_str(), GetPeerPort());
}

void EchoServerSocket::OnRecv(void)
{
    ::mki::yxs::BYTE_t buf[0x1000];
    ::std::size_t bytsRecv = Recv(buf, sizeof(buf));
    Send(buf, bytsRecv);

    _gstatics.EmitRecv(bytsRecv);
}

void EchoServerSocket::OnSend(void)
{
    _gstatics.EmitSend();
}

void EchoServerSocket::OnClose(void)
{
    printf("[%d] %s:%d disconnected\n", GetId(), GetPeerAddr().c_str(), GetPeerPort());
}